<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<!--
Copyright 2004-2022 H2 Group. Multiple-Licensed under the MPL 2.0,
and the EPL 1.0 (https://h2database.com/html/license.html).
Initial Developer: H2 Group
-->
<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">
<head><meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<title>
Change Log
</title>
<link rel="stylesheet" type="text/css" href="stylesheet.css" />
<!-- [search] { -->
<script type="text/javascript" src="navigation.js"></script>
</head><body onload="frameMe();">
<table class="content"><tr class="content"><td class="content"><div class="contentDiv">
<!-- } -->

<h1>Change Log</h1>

<h2>Next Version (unreleased)</h2>
<ul>
<li>Issue #3493: org.h2.tools.DeleteDbFiles won't delete files under certain circumstances
</li>
<li>Issue #3486: FilePathDisk.newDirectoryStream() may fail on remote drive on Windows due to AccessDeniedException in Path.toRealPath()
</li>
<li>Issue #3484: LOB issue
</li>
</ul>

<h2>Next Version  2.1.212 (2022-04-09)</h2>
<ul>
<li>PR #3481: Add support for standard interval literals with precision
</li>
<li>Issue #3471: Possibility of corruption after SHUTDOWN DEFRAG
</li>
<li>Issue #3473: DROP TABLE/INDEX causes memory leak
</li>
<li>PR #3464 / Issue #3457: increase max length of VAR* types
</li>
<li>PR #3460: fix bug in readStoreHeader()
</li>
<li>PR #3458: Add performance tests for SQLite
</li>
<li>Issue #1808: Occasional NPE in concurrent update of LOB
</li>
<li>Issue #3439: Cannot use enum values in JSON without explicit casts
</li>
<li>Issue #3426: Regression: BIT(1) is not accepted in MySQL compatibility mode
</li>
<li>PR #3422: Allow combination of any geometry types with the same SRID
</li>
<li>Issue #3414: H2 2.1.210: Query with Parameters throws NPE
</li>
<li>Issue #3413: Parser can&apos;t parse REFERENCES &hellip; NOT NULL
</li>
<li>Issue #3410: OOME with nested derived tables
</li>
<li>Issue #3405: Enhance SCRIPT to support operations on STDOUT
</li>
<li>Issue #3406 / PR #3407: FunctionMultiReturn.polar2CartesianArray result set iteration throws ClassCastException
</li>
<li>Issue #3400: Regression: ORDER BY ROWNUM fails with General error: "Unexpected code path"
</li>
<li>Issue #3387: SYSDATE behavior changed in 2.x
</li>
<li>Issue #3394: SYSDATE Considered Identifier when used in inner select
</li>
<li>Issue #3391: Hang on merge statement with data change delta table
</li>
<li>PR #3384: Remove abandoned Java to C converter and fix some warnings from Sonatype Lift
</li>
<li>PR #3382: Use secure parser in H2AuthConfigXml to avoid future reports
</li>
</ul>

<h2>Version 2.1.210 (2022-01-17)</h2>
<ul>
<li>PR #3381: Add IDENTITY() and SCOPE_IDENTITY() to LEGACY mode
</li>
<li>Issue #3376: Data cannot be read after insert of clob data > MAX_LENGTH_INPLACE_LOB with data change delta table
</li>
<li>PR #3377: Add -webExternalNames setting and fix WebServer.getConnection()
</li>
<li>PR #3367: Use faster checks of dimension systems of geometries
</li>
<li>PR #3369: Added v2 changes in migration docs
</li>
<li>Issue #3361: MemoryEstimator.estimateMemory() can return negative size
</li>
<li>PR #3362: Use BufferedReader instead of BufferedInputStream to avoid Illegal seek exception
</li>
<li>Issue #3353: Wrong rownum() scope for DML with change delta table
</li>
<li>PR #3352: make Javadoc happier
</li>
<li>Issue #3344: Changelog could link to github issue
</li>
<li>Issue #3340: JDBC index type seems wrong
</li>
<li>Issue #3336: FT_INIT error when mode=MySQL
</li>
<li>Issue #3334: Regression with CREATE ALIAS - Parameter "#2" is not set
</li>
<li>Issue #3321: Insert Primary Key after import CSV Data does not work
</li>
<li>PR #3323: Tokenize SQL before parsing and preserve tokens for recompilation
</li>
<li>PR #3320: Add Servlet 5-compatible servlet for H2 Console
</li>
<li>Issue #918: Parser fails recognising set operations in correlated subqueries
</li>
<li>Issue #2050: PostgreSQL with recursive fail with union in the final query
</li>
<li>PR #3316: Update copyright years
</li>
<li>PR #3315: Never put read locks into lockSharedSessions and other minor changes
</li>
<li>Issue #492: H2 does not correctly parse &lt;parenthesized joined table&gt;
</li>
<li>Issue #3311: Parser creates wrong join graph in some cases and uses wrong tables for column mapping
</li>
<li>FORCE_JOIN_ORDER setting is removed
</li>
<li>Issue #1983: Official build script is not compatible with Java 13
</li>
<li>PR #3305: Add UNIQUE(VALUE) and remove some non-standard keywords
</li>
<li>PR #3299: Remove useless StringBuilder.toString() call
</li>
<li>PR #3298: Delete unused sqlTypes array
</li>
</ul>

<h2>Version 2.0.206 (2022-01-04)</h2>
<ul>
<li>Issue #3322: Create linked table fails when the table contains a Geometry with a data type specified
</li>
<li>Issue #3297: Unexpected GROUP BY results with indexed IGNORECASE column
</li>
</ul>

<h2>Version 2.0.204 (2021-12-21)</h2>
<ul>
<li>Issue #3291: Add Legacy and Strict modes
</li>
<li>Issue #3287: SELECT statement works on 1.4.200 but fails on 2.0.202 with "Column XYZ must be in the GROUP BY list"
</li>
<li>PR #3284: Remove unused UNDO_LOG setting
</li>
<li>Issue #3251: Table with GEOMETRY column can't have a TriggerAdapter-based trigger any more
</li>
<li>PR #3281: DateTimeFormatter-based FORMATDATETIME and PARSEDATETIME and other changes
</li>
<li>Issue #3246: Spatial predicates with comparison are broken in MySQL compatibility mode
</li>
<li>Issue #3270: org.h2.jdbc.JdbcSQLFeatureNotSupportedException: Feature not supported: "Unsafe comparison or cast"
</li>
<li>Issue #3268 / PR #3275: Add TO_DATE and TO_TIMESTAMP to PostgreSQL compatibility mode
</li>
<li>PR #3274: Remove some dead code and unused params
</li>
<li>Issue #3266: Oracle compatibility NUMBER without precision and scale should have variable scale
</li>
<li>Issue #3263: Unable to store BigDecimal with negative scale in NUMERIC(19,6) column
</li>
<li>PR #3261: Small optimization for MIN and MAX
</li>
<li>Issue #3258 / PR #3259: Prevent incorrect optimization of COUNT(*) and other changes
</li>
<li>PR #3255: Throw proper exception when type of argument isn't known
</li>
<li>Issue #3249: Multi-column assignment with subquery throws exception when subquery doesn't return any rows
</li>
<li>PR #3248: Remove redundant uniqueness check, correct version in pom
</li>
<li>PR #3247: Avoid AIOBE exception in TestCrashAPI and in Transaction
</li>
<li>Issue #3241: ResultSetMetaData::getColumnTypeName should produce the correct ARRAY type
</li>
<li>Issue #3204: H2 Tools Web Console: Unicode 32
</li>
<li>Issue #3227: Regression when referencing outer joined column from correlated subquery
</li>
<li>Issue #3237: Can no longer cast CHAR(n) to BOOLEAN with n > 1
</li>
<li>Issue #3235: Regression in IN predicate with empty in list
</li>
<li>Issue #3236: NullPointerException in DatabaseMetaData::getIndexInfo when querying the info for views
</li>
<li>Issue #3233: General error when using NULL predicate on _ROWID_ column
</li>
<li>Issue #3223: TRUNC(v, p) with negative precisions no longer works
</li>
<li>Issue #3221: NullPointerException when creating domain
</li>
<li>Issue #3186: ResultSetMetaData.getSchemaName() returns empty string for aliased columns
</li>
</ul>

<h2>Version 2.0.202 (2021-11-25)</h2>
<ul>
<li>Issue #3206: CVE Vulnerability CVE-2018-14335
</li>
<li>Issue #3174: Add keyword AUTOCOMMIT on create linked table to control the commit mode
</li>
<li>Issue #3130: Precision of NUMERIC values isn't verified in the Oracle compatibility mode
</li>
<li>Issue #3122: Documentation: Syntax diagram for RENAME CONSTRAINT incorrect
</li>
<li>PR #3129: remove LOB compression
</li>
<li>PR #3127: Cleanups post PageStore removal
</li>
<li>PR #3126: Change nested classes to static nested classes where possible
</li>
<li>PR #3125: Strongly typed LobStorageMap
</li>
<li>PR #3124: Remove PageStore engine
</li>
<li>Issue #3118: SHUTDOWN COMPACT causes 2PC to corrupt database in a simulated crash
</li>
<li>Issue #3115: Infinite loop then OOM in org.h2.mvstore.tx.Transaction.waitFor() when deadlock occurs
</li>
<li>Issue #3113: Data lost when 2 threads read/write TransactionStore and close it normally even if MVStore autoCommit
disabled
</li>
<li>PR #3110: Fix possible int overflow and minor doc change
</li>
<li>Issue #3036: A database that contains BLOBs might grow without being able to be compacted
</li>
<li>Issue #3097: Possible MVStore compaction issue
</li>
<li>PR #3096: Add separate LOB data layer for values
</li>
<li>Issue #3093: ROWNUM filter doesn't work with more than one table
</li>
<li>PR #3087: Add "CONVERT TO CHARACTER SET" to compatibility modes
</li>
<li>Issue #3080: Complex Query returns different results depending on the number of arguments in the IN clause
</li>
<li>Issue #3066: Very high DB opening/closing times
</li>
<li>PR #3077: Add CREATE UNIQUE INDEX ... INCLUDE
</li>
<li>Issue #3061 / PR #3074: GROUP BY using column index for MySQL/MariaDB/PostgreSQL compatibility modes
</li>
<li>PR #3067: Restrict identity data types and result limitation clauses to compatibility modes
</li>
<li>PR #3065: Remove duplicate method IOUtils.getBufferedReader
</li>
<li>Issue #3055: Phantom table leftover after INSERT .. WITH
</li>
<li>PR #3062: Add ALTER DOMAIN RENAME CONSTRAINT command
</li>
<li>Issue #3059: ALTER TABLE DROP CONSTRAINT doesn't check owner of constraint
</li>
<li>Issue #3054: Add binary set aggregate functions
</li>
<li>Issue #3049: Java value getters of ValueNull should throw exceptions
</li>
<li>Issue #3046: SYSTEM_RANGE can't handle bind variable as step size and produces wrong error message
</li>
<li>Issue #3033: NPE during BLOB read after 2PC rollback
</li>
<li>PR #3034: Don't evaluate ValueTimestampTimeZone at begin and end of each command
</li>
<li>PR #3029: Optimize row storage in MVStore and other changes
</li>
<li>PR #3028: Remove back compatibility
</li>
<li>PR #3025: Switch from Travis CI to GitHub Workflows
</li>
<li>PR #3024: Add initial version of upgrade utility
</li>
<li>Issue #3017: ROUND() does not set correct precision and scale of result
</li>
<li>Issue #3003: CREATE TABLE ... AS SELECT ... FROM creates invalid column definition when aggregate functions are used
</li>
<li>Issue #3008: TestCrashAPI: Exception in Arrays.sort() called by LocalResult.done()
</li>
<li>Issue #3006 / PR #3007: Unlock meta during query execution in CREATE TABLE AS query
</li>
<li>PR #3001: PostgreSQL compatibility: UPDATE with FROM
</li>
<li>PR #2998: Fix off-by-one error with -webAdminPassword in Server
</li>
<li>PR #2995: Add FETCH_SIZE clause to CREATE LINKED TABLE
</li>
<li>Issue #2907 / PR #2994: Prevent "Chunk not found" on LOB operations
</li>
<li>PR #2993: Update copyright years
</li>
<li>Issue #2991: TestCrashAPI: NPE in ScriptCommand.dumpDomains()
</li>
<li>Issue #2950 / PR #2987: Issue commit() right before "non-transactional" DDL command starts
</li>
<li>PR #2980: Assorted minor changes
</li>
<li>PR #2966: H2 2.0.201: Linked Tables freeze the Database and freeze the Server Process
</li>
<li>Issue #2972: Memory leak due to negative Page memory in the MVStore
</li>
<li>PR #2971: create skeleton of migration to V2 document
</li>
<li>Issue #2967: MVStore: averageSize int overflow in the class ObjectDataType
</li>
<li>Issue #2963: Syntax error for large hexadecimal constants with DATABASE_TO_UPPER=false
</li>
<li>Issue #2961: Accept CREATE PRIMARY KEY only in metadata or in quirks mode
</li>
<li>Issue #2960: Reject invalid CREATE { UNIQUE | HASH } SPATIAL INDEX
</li>
<li>Issue #2958: TableLink is broken for Oracle database after pull request #2903
</li>
<li>PR #2955: Prevent incorrect index sorting
</li>
<li>PR #2951: Add documentation for INFORMATION_SCHEMA
</li>
<li>PR #2943: some small prep for next release
</li>
<li>PR #2948: Add support of Infinity, -Infinity, and NaN to DECFLOAT data type
</li>
<li>Issue #2947: Encoding of Unicode and special characters in error messages
</li>
<li>Issue #2891: Fix import of unnamed referential constraints from SQL scripts generated by older versions of H2
</li>
<li>Issue #2812: Unexpected result for query that compares an integer with a string
</li>
<li>Issue #2936: Add data type conversion code from datetime and UUID values to JSON
</li>
<li>Issue #2935: ENUM ARRAY isn't read properly from persisted data
</li>
<li>Issue #2923: Combination of fileName() with fileStore() should throw an exception
</li>
<li>Issue #2928: JSON_ARRAYAGG and all NULL values
</li>
<li>PR #2918: Removal of unnecessary lock
</li>
<li>Issue #2911: org.h2.mvstore.MVStoreException: Transaction was illegally transitioned from ROLLING_BACK to
ROLLED_BACK
</li>
<li>Issue #1022: JdbcDatabaseMetaData.getPseudoColumns() should be implemented
</li>
<li>Issue #2914: (T1.A = T2.B) OR (T1.A = T2.C) should be optimized to T1.A IN(T2.B, T2.C) to allow index conditions
</li>
<li>PR #2903: Assorted changes
</li>
<li>Issue #2901: PgServer returns less rows when fetchSize is set
</li>
<li>Issue #2894: NPE in DROP SCHEMA when unique constraint is removed before linked referential constraint
</li>
<li>Issue #2888: H2 should pass time zone of client to the server
</li>
<li>PR #2890: Fixed possible eternal wait(0)
</li>
<li>Issue #2846: GRANT SELECT, INSERT, UPDATE, DELETE incorrectly gives privileges to drop a table
</li>
<li>Issue #2882: NPE in UPDATE with SELECT UNION
</li>
<li>PR #2881: Store users and roles together and user-defined functions and aggregates together
</li>
<li>Issue #2878: Disallow spatial indexes in PageStore databases
</li>
<li>PR #2874: Use 64-bit row counts in results and other changes
</li>
<li>Issue #2866: New INFORMATION_SCHEMA should not use keywords as column names
</li>
<li>Issue #2867: PageStore + Lazy + INSERT ... SELECT cause infinite loop
</li>
<li>PR #2869: Normalize binary geometry literals and improve EWKB representation of POLYGON EMPTY
</li>
<li>Issue #2860: CHAR columns in PgCatalogTable have incorrect length
</li>
<li>Issue #2848: Add support for standard &lt;listagg overflow clause&gt;
</li>
<li>Issue #2858: Throw 22001 on attempt to use getString() or getBytes() on LOB object longer than 1,048,576
chars/octets
</li>
<li>Issue #2854: Define limits for identifiers, number of columns, etc.
</li>
<li>PR #2853: Small optimization for Page compression / decompression
</li>
<li>Issue #2832: Define length limits for non-LOB data types
</li>
<li>Issue #2842: Querying view that uses LTRIM/RTRIM results in a syntax error
</li>
<li>Issue #2841: Call to STRINGDECODE results in StringIndexOutOfBoundsException
</li>
<li>Issue #2839: Querying a view that uses the POSITION() function results in an unexpected syntax error
</li>
<li>Issue #2838: INSERT() with NULL arguments for the original string and string to be added results in NPE
</li>
<li>Issue #2837: ROUND() function should reject invalid number of digits immediately
</li>
<li>Issue #2835: Calling math functions with a string argument results in a NullPointerException
</li>
<li>Issue #2833: MERGE INTO causes an unexpected syntax error
</li>
<li>Issue #2831: Restore YEAR data type for MySQL compatibility mode
</li>
<li>Issue #2822: Suspicious logic in Database.closeImpl()
</li>
<li>Issue #2829: Incorrect manifest entries in sources jar
</li>
<li>Issue #2828: Parser can't parse NOT in simple when operand
</li>
<li>Issue #2826: Table with a generated column cycle results in a NullPointerException
</li>
<li>Issue #2825: Query with % operator results in a ClassCastException
</li>
<li>Issue #2818: TableFilter.getValue() can read value of delegated column faster
</li>
<li>Issue #2816: Query on view that uses the BETWEEN operator results in an unexpected syntax error
</li>
<li>PR #2815: Remove BINARY_COLLATION and UUID_COLLATION settings
</li>
<li>Issue #2813: Query with CASE operator unexpectedly results in "Column must be in the GROUP BY list" error
</li>
<li>Issue #2811: Update build numbers and data format versions
</li>
<li>Issue #2674: OPTIMIZE_IN_SELECT shouldn't convert value to incompatible data types
</li>
<li>Issue #2803: Disallow comparison operations between incomparable data types
</li>
<li>Issue #2561: Separate normal functions and table value functions
</li>
<li>Issue #2804: NPE in ConditionNot.getNotIfPossible()
</li>
<li>Issue #2801: Instances of TableView objects leaking
</li>
<li>PR #2799: Additional bit functions BITNAND, BITNOR, BITXNOR, BITCOUNT, ULSHIFT, URSHIFT, ROTATELEFT, ROTATERIGHT,
BIT_NAND_AGG, BIT_NOR_AGG, and BIT_XNOR_AGG.
</li>
<li>PR #2798: Complete separation of Function class
</li>
<li>Issue #2795: Sporadic issues with trigger during concurrent insert in 1.4.199/1.4.200
</li>
<li>PR #2796: Assorted refactorings
</li>
<li>Issue #2786: Failure in CREATE TABLE AS leaves inconsistent transaction if some rows were successfully inserted
</li>
<li>Issue #2790: Examples in documentation of CREATE ALIAS should use standard literals only
</li>
<li>Issue #2787: CONCAT and CONCAT_WS functions
</li>
<li>PR #2784: Oracle REGEXP_REPLACE support
</li>
<li>Issue #2780: Remove SCOPE_GENERATED_KEYS setting
</li>
<li>PR #2779: Fix incorrect FK restrictions and other changes
</li>
<li>PR #2778: Assorted changes
</li>
<li>Issue #2776: Referential constraint can create a unique constraint in the wrong schema
</li>
<li>Issue #2771: Add documented DEFAULT ON NULL flag for all types of columns
</li>
<li>Issue #2742 / PR #2768: Better separation of MVStore aimed at smaller h2-mvstore jar
</li>
<li>Issue #2764: Identity columns don't accept large numbers
</li>
<li>IDENTITY() function is removed, SCOPE_IDENTITY() is now available only in MSSQLServer compatibility mode.
</li>
<li>Issue #2757: Intermittent TestFileSystem failures
</li>
<li>Issue #2758: Issues with sequences
</li>
<li>PR #2756: Prevent DROP NOT NULL for identity columns
</li>
<li>Issue #2753: UPDATE statement changes value of GENERATED ALWAYS AS IDENTITY columns
</li>
<li>PR #2751: Add comment explaining seemingly dummy operation
</li>
<li>PR #2750: Use RFC 4122 compliant UUID comparison by default
</li>
<li>PR #2748: PgServer set type text to NULL value
</li>
<li>Issue #2746: Old TCP clients with current server
</li>
<li>PR #2745: PgServer can send bool in binary mode
</li>
<li>PR #2744: Remove jarSmall and jarClient targets
</li>
<li>PR #2743: Add IS_TRIGGER_UPDATABLE and other similar fields to INFORMATION_SCHEMA
</li>
<li>PR #2738: Fix VIEWS.VIEW_DEFINITION and support it for other databases in H2 Console
</li>
<li>PR #2737: Assorted changes
</li>
<li>PR #2734: Update dependencies and fix ResultSetMetaData.isSigned()
</li>
<li>PR #2733: Replace h2.sortNullsHigh with DEFAULT_NULL_ORDERING setting
</li>
<li>PR #2731: Fix spelling errors in German translation
</li>
<li>PR #2728: Add and use DATA_TYPE_SQL() function and remove INFORMATION_SCHEMA.PARAMETERS.REMARKS
</li>
<li>Issue #1015: ENUM and arithmetic operators
</li>
<li>Issue #2711: Store normalized names of data types in metadata
</li>
<li>PR #2722: Implement getRowCount() for some INFORMATION_SCHEMA tables
</li>
<li>PR #2721: Improve LOCKS, SESSIONS, and USERS and optimize COUNT(*) on other isolation levels in some cases
</li>
<li>Issue #2655: TestCrashAPI: AssertionError at MVPrimaryIndex.&lt;init&gt;
</li>
<li>Issue #2716: Fix URL of Maven repository
</li>
<li>Issue #2715: Mention `DB_CLOSE_DELAY=-1` flag in JDBC URL on the "Cheat Sheet" page
</li>
<li>PR #2714: fixed few code smells discovered by PVS-Studio
</li>
<li>Issue #2712: `NOT LIKE` to a sub-query doesn't work
</li>
<li>PR #2710: PgServer: set oid and attnum in RowDescription
</li>
<li>Issue #2254: Add standard DECFLOAT data type
</li>
<li>PR #2708: Add declared data type attributes to the INFORMATION_SCHEMA
</li>
<li>Issue #2706: Empty comments / remarks on objects
</li>
<li>PR #2705: Return standard-compliant DATA_TYPE for strings
</li>
<li>PR #2703: Fix case-insensitive comparison issues with national characters
</li>
<li>Issue #2701: Subquery with FETCH should not accept global conditions
</li>
<li>Issue #2699: Remove FUNCTIONS_IN_SCHEMA setting
</li>
<li>Issue #452: Add possibility to use user-defined aggregate functions with schema
</li>
<li>PR #2695: Refactor handling of parentheses in getSQL() methods
</li>
<li>PR #2693: disallow VARCHAR_IGNORECASE in PostgreSQL mode
</li>
<li>Issue #2407: Implement CHAR whitespace handling correctly
</li>
<li>PR #2685: Check existing data in ALTER DOMAIN ADD CONSTRAINT
</li>
<li>PR #2683: Fix data types in Transfer
</li>
<li>PR #2681: Report user functions in standard ROUTINES and PARAMETERS views
</li>
<li>PR #2680: Reimplement remaining DatabaseMetaData methods and fix precision of binary numeric types
</li>
<li>PR #2679: Reimplement getTables(), getTableTypes(), and getColumns()
</li>
<li>PR #2678: Reimplement getPrimaryKeys(), getBestRowIdentifier(), getIndexInfo() and others
</li>
<li>PR #2675: Reimplement getImportedKeys(), getExportedKeys(), and getCrossReferences()
</li>
<li>PR #2673: Reimplement some metadata methods
</li>
<li>PR #2672: Forward DatabaseMetaData calls to server
</li>
<li>Issue #2329: Content of INFORMATION_SCHEMA should be listed as VIEWS
</li>
<li>PR #2668: Sequence generator data type option and length parameter for JSON data type
</li>
<li>PR #2666: Add ALTER DOMAIN RENAME command
</li>
<li>PR #2663: Add ALTER DOMAIN { SET | DROP } { DEFAULT | ON UPDATE }
</li>
<li>PR #2661: Don't allow construction of incomplete ARRAY and ROW data types
</li>
<li>Issue #2659: NULLIF with row values
</li>
<li>PR #2658: Extract date-time and some other groups of functions into own classes
</li>
<li>PR #2656: add `_int2` and `_int4` for PgServer
</li>
<li>PR #2654: Move out JSON, cardinality, ABS, MOD, FLOOR, and CEIL functions from the Function class
</li>
<li>PR #2653: Use full TypeInfo for conversions between PG and H2 data types
</li>
<li>PR #2652: Add "SHOW ALL"
</li>
<li>PR #2651: add `pg_type.typelem` and `pg_type.typdelim`
</li>
<li>PR #2649: Extract some groups of functions from Function class
</li>
<li>PR #2646: Add some PostgreSQL compatibility features
</li>
<li>PR #2645: Add CURRENT_PATH, CURRENT_ROLE, SESSION_USER, and SYSTEM_USER
</li>
<li>Issue #2643: Send PG_TYPE_TEXTARRAY values to ODBC drivers properly
</li>
<li>PR #2642: Throw proper exceptions from array element reference and TRIM_ARRAY
</li>
<li>PR #2640: German translations
</li>
<li>Issue #2108: Add possible candidates in different case to table not found exception
</li>
<li>Issue #2633: Multi-column UPDATE assignment needs to be reimplemented
</li>
<li>PR #2635: Implement REGEXP_SUBSTR function
</li>
<li>PR #2632: Improve ROW data type
</li>
<li>PR #2630: fix: quoted VALUE in documentation
</li>
<li>Issue #2628: Cached SQL throws JdbcSQLSyntaxErrorException if executed with different parameter values than before
</li>
<li>Issue #2611: Add quantified distinct predicate
</li>
<li>Issue #2620: LOBs in triggers
</li>
<li>PR #2619: ARRAY_MAX_CARDINALITY and TRIM_ARRAY functions
</li>
<li>PR #2617: Add Feature F262: Extended CASE expression
</li>
<li>PR #2615: Add feature T461: Symmetric BETWEEN predicate
</li>
<li>PR #2614: Fix support of multi-dimensional arrays in Java functions
</li>
<li>Issue #2608: Improve concatenation operation for multiple operands
</li>
<li>PR #2605: Assorted minor changes
</li>
<li>Issue #2602: H2 doesn't allow to create trigger from Java source code if there are nested classes
</li>
<li>PR #2601: Add field SLEEP_SINCE to INFORMATION_SCHEMA.SESSIONS table
</li>
<li>Issue #1973: Standard MERGE statement doesn't work with views
</li>
<li>Issue #2552: MERGE statement should process each row only once
</li>
<li>Issue #2548: Wrong update count when MERGE statement visits matched rows more than once
</li>
<li>Issue #2394: H2 does not accept DCL after source merge table
</li>
<li>Issue #2196: Standard MERGE statement doesn't release the source view
</li>
<li>Issue #2567: ARRAY-returning Java functions don't return the proper data type
</li>
<li>Issue #2584: Regression in NULL handling in multiple AND or OR conditions
</li>
<li>PR #2577: PgServer: `array_to_string()` and `set join_collapse_limit`
</li>
<li>PR #2568: Add BIT_XOR_AGG aggregate function
</li>
<li>PR #2565: Assorted minor changes
</li>
<li>PR #2563: defrag is not contributing much, remove from test run
</li>
<li>PR #2562: new exception MVStoreException
</li>
<li>PR #2557: don't throw IllegalStateException in checkOpen
</li>
<li>PR #2554: Reenable mvstore TestCrashAPI
</li>
<li>Issue #2556: TestOutOfMemory: Table "STUFF" not found
</li>
<li>PR #2555: Move current datetime value functions into own class
</li>
<li>PR #2547: split up the ValueLob classes
</li>
<li>PR #2542: Pipelining mvstore chunk creation / save
</li>
<li>Issue #2550: NullPointerException with MERGE containing unknown column in AND condition of WHEN
</li>
<li>Issue #2546: Disallow empty CASE specifications and END CASE
</li>
<li>Issue #2530: Long query with many AND expressions causes StackOverflowError
</li>
<li>PR #2543: Improve case specification support and fix some issues with it
</li>
<li>Issue #2539: Replace non-standard functions with standard code directly in Parser
</li>
<li>Issue #2521: Disallow untyped arrays
</li>
<li>Issue #2532: Duplicate column names in derived table should be acceptable in the presence of a derived column list
that removes ambiguities
</li>
<li>PR #2527: Feature: allow @ meta commands from Console
</li>
<li>PR #2526: Reduce I/O during database presence check and restrict some compatibility settings to their modes
</li>
<li>PR #2525: Restore support of third-party drivers in the Shell tool
</li>
<li>Issue #1710: getHigherType() returns incorrect type for some arguments
</li>
<li>PR #2516: SHUTDOWN IMMEDIATELY should be a normal shut down
</li>
<li>PR #2515: Fix nested comments in ScriptReader
</li>
<li>Issue #2511: Restrict Oracle compatibility functions to Oracle compatibility mode
</li>
<li>PR #2508: Minor refactoring around Tx isolation level
</li>
<li>PR #2505: Assorted changes in DATEADD, DATEDIFF, DATE_TRUNC, and EXTRACT
</li>
<li>Issue #2502: Combination of DML with data change delta table skips subsequent update
</li>
<li>PR #2499: Performance fix for PageStore under concurrent load
</li>
<li>PR #2498: Add some PostgreSQL compatibility features mentioned in issue #2450
</li>
<li>Issue #2496: Error when using empty JSON_OBJECT() or JSON_ARRAY() functions
</li>
<li>PR #2495: Fix JSON_OBJECT grammar in documentation
</li>
<li>Issue #2493 / PR #2494: Replace ColumnNamer with mode-specific generation of column names for views
</li>
<li>PR #2492: Assorted changes in parser, keywords, and ILIKE condition
</li>
<li>PR #2490: Replace pg_catalog.sql with PgCatalogTable and use DATABASE_TO_LOWER in PG Server
</li>
<li>Issue #2488 / PR #2489: Mark version functions as not deterministic
</li>
<li>Issue #2481: Convert TO to keyword
</li>
<li>PR #2476: Add some PostgreSQL compatibility features mentioned in issue #2450
</li>
<li>PR #2479: Recognize absolute path on Windows without drive letter
</li>
<li>Issue #2475: Select order by clause is exported with non-portable SQL
</li>
<li>Issue #2472: Updating column to empty string in Oracle mode with prepared statement does not result in null
</li>
<li>PR #2468: MVStore scalability improvements
</li>
<li>PR #2466: Add partial support for MySQL COLLATE and CHARACTER statements
</li>
<li>Issue #2464: `client_encoding='utf-8'` (single quoted) from `node-postgres` not recognized
</li>
<li>Issue #2461: Support for binary_float and binary_double type aliases
</li>
<li>Issue #2460: Exception when accessing empty arrays
</li>
<li>Issue #2318: Remove incorrect rows from DatabaseMetaData.getTypeInfo() and INFORMATION_SCHEMA.TYPE_INFO
</li>
<li>Issue #2455: `bytea` column incorrectly read by `psycopg2`
</li>
<li>PR #2456: Add standard array value constructor by query
</li>
<li>PR #2451: Add some PostgreSQL compatibility features mentioned in issue #2450
</li>
<li>Issue #2448: Change default data type name from DOUBLE to DOUBLE PRECISION
</li>
<li>PR #2452: Do not use unsafe and unnecessary FROM DUAL internally
</li>
<li>PR #2449: Add support for standard trigraphs
</li>
<li>Issue #2439: StringIndexOutOfBoundsException when using TO_CHAR
</li>
<li>Issue #2444: WHEN NOT MATCHED THEN INSERT should accept only one row
</li>
<li>Issue #2434: Next value expression should return the same value within a processed row
</li>
<li>PR #2437: Assorted changes in MVStore
</li>
<li>Issue #2430: Postgres `bytea` column should be read with and without `forceBinary`
</li>
<li>Issue #2267: BINARY and VARBINARY should be different
</li>
<li>Issue #2266: CHAR and BINARY should have length 1 by default
</li>
<li>PR #2426: Add MD5 and all SHA-1, SHA-2, and SHA-3 digests to the HASH() function
</li>
<li>Issue #2424: 0 should not be accepted as a length of data type
</li>
<li>Issue #2378: JAVA_OBJECT and TableLink
</li>
<li>Issue #2417: Casts between binary strings and non-string data types
</li>
<li>Issue #2416: OTHER and JAVA_OBJECT
</li>
<li>Issue #2379: SQL export can change data type of a constant
</li>
<li>Issue #2411: ArrayIndexOutOfBoundsException when HAVING and duplicate columns in SELECT
</li>
<li>Issue #2194: Add own enumeration of data types to API
</li>
<li>PR #2408: Descending MVMap and TransactionMap cursor
</li>
<li>Issue #2399: Cast to ARRAY with a nested ARRAY does not check the maximum cardinality of the nested ARRAY
</li>
<li>Issue #2402: Remove old ValueLob and DbUpgrade
</li>
<li>Issue #2400: Inconsistent data type conversion between strings and LOBs
</li>
<li>PR #2398: Add expandable flags for SQL generation methods
</li>
<li>PR #2395: Fix for two recent page format bugs
</li>
<li>PR #2386: Chunk occupancy mask
</li>
<li>PR #2385: Memory estimate
</li>
<li>PR #2381: Follow up REPEATABLE_READ-related changes
</li>
<li>PR #2380: use JIRA tracker URLs for JDK bugs
</li>
<li>PR #2376: Fix IN condition with row value expressions in its right side
</li>
<li>Issue #2367 / PR #2370: fix backward compatibility with 1.4.200
</li>
<li>Issue #2371: REPEATABLE READ isolation level does not work in MVStore
</li>
<li>Issue #2363: Soft links in -baseDir and database path cause error 90028
</li>
<li>Issue #2364: TestScript datatypes/timestamp-with-time-zone.sql fails if TZ=Europe/Berlin
</li>
<li>Issue #2359: Complete implementation of generated columns
</li>
<li>PR #2361: Fix unused result
</li>
<li>PR #2353: Push binary search operation from Page to DataType
</li>
<li>Issue #2348: Add USING clause to ALTER COLUMN CHANGE DATA TYPE
</li>
<li>Issue #2350: License Problem in POM
</li>
<li>Issue #2345: Add standard SET TIME ZONE command to set current time zone of the session
</li>
<li>PR #2341: Cleanup file backend sync
</li>
<li>Issue #2343: Domain-based domains: Domain not found after reconnection
</li>
<li>Issue #2338: Domains should not support NULL constraints
</li>
<li>Issue #2334: build target mavenInstallLocal broken since commit 7cbbd55e
</li>
<li>#2335: TestDateTimeUtils fails if system timezone has DST in the future
</li>
<li>Issue #2330: Syntax error with parenthesized expression in GROUP BY clause
</li>
<li>Issue #2256: &lt;interval value expression&gt; with datetime subtraction
</li>
<li>Issue #2325: H2 does not parse nested bracketed comments correctly
</li>
<li>Issue #466: Confusion about INFORMATION_SCHEMA content related to UNIQUE constraints
</li>
<li>PR #2323: Assorted changes
</li>
<li>Issue #2320: Remove SAMPLE_SIZE clause from SELECT
</li>
<li>Issue #2301: Add compatibility setting to accept some keywords as identifiers
</li>
<li>PR #2317: Replace CHECK_COLUMN_USAGE with CONSTRAINT_COLUMN_USAGE and other changes
</li>
<li>Issue #2315: Sequence must remember its original START WITH value
</li>
<li>Issue #2313: DISTINCT does not work in ordered aggregate functions
</li>
<li>PR #2306: Add support for RESTART of sequence without initial value
</li>
<li>Issue #2304: NPE in multiple define commands in one statement after upgrade from H2 4.1.197
</li>
<li>PR #2303: Assorted minor changes
</li>
<li>Issue #2286: Inline check constraints not in INFORMATION_SCHEMA
</li>
<li>PR #2300: Continue generification of MVStore codebase
</li>
<li>PR #2298: add some minimal security documentation
</li>
<li>PR #2292: synchronize fileBase subclasses use of position
</li>
<li>PR #2238: Some MVStore refactoring
</li>
<li>Issue #2288: ConcurrentModificationException during commit
</li>
<li>Issue #2293: Remove TestClearReferences and workarounds for old versions of Apache Tomcat
</li>
<li>Issue #2288: ConcurrentModificationException during commit
</li>
<li>PR #2284: Remove unrelated information from README and add some information about H2
</li>
<li>PR #2282: add PostgreSQL compatible variable STATEMENT_TIMEOUT
</li>
<li>PR #2280: little comment
</li>
<li>Issue #2205: H2 1.4.200 split FS issue
</li>
<li>Issue #2272: UpdatableView and obtaining the Generated Keys
</li>
<li>PR #2276: Split up filesystem classes
</li>
<li>PR #2275: improve detection of JAVA_HOME on Mac OS
</li>
<li>Issue #2268: Numeric division needs better algorithm for scale selection
</li>
<li>Issue #2270: IGNORE_UNKNOWN_SETTINGS is ignored
</li>
<li>PR #2269: Fix existence check of non-persistent databases
</li>
<li>Issue #1910: BinaryOperation should evaluate precision and scale properly
</li>
<li>PR #2264: Clean up redundant parts of file system abstraction
</li>
<li>PR #2262: add setting AUTO_COMPACT_FILL_RATE
</li>
<li>Issue #2255 / PR #2259: Use NIO2 in main sources and build
</li>
<li>PR #2257: Catch java.lang.NoClassDefFoundError
</li>
<li>Issue #2241: Mark H2-specific and compatibility only clauses in documentation
</li>
<li>PR #2246: Update third-party drivers
</li>
<li>Issue #2239 / PR #2236: Add NETWORK_TIMEOUT setting for SO_TIMEOUT
</li>
<li>PR #2235: Don't use RandomAccessFile in FilePathNio
</li>
<li>Issue #2233: "Prepared.getObjectId() was called before" when granting on multiple tables
</li>
<li>PR #2230: Add factory methods for Row
</li>
<li>Issue #2226, PR #2227: Remove support of Apache Ignite
</li>
<li>PR #2224: Update some hyperlinks and use https in them where possible
</li>
<li>PR #2223: Fix data change delta tables in views
</li>
<li>Issue #1943: Deadlock in TestTriggersConstraints
</li>
<li>PR #2219: do not retry failed DDL commands
</li>
<li>PR #2214: Fix TRACE_LEVEL_FILE=4 for in-memory databases
</li>
<li>PR #2216: Add FileChannel.lock in the connection URL summary
</li>
<li>PR #2215: Add white-space: pre to tables with query results
</li>
<li>Issue #2213: NUMERIC scale can be larger than a precision
</li>
<li>PR #2212: Get rid of multi-version CurrentTimestamp and fix negative scale of NUMERIC
</li>
<li>PR #2210: Meta table extras
</li>
<li>PR #2209: Add standard expressions with interval qualifier
</li>
<li>PR #2195: Feature abort_session function
</li>
<li>PR #2201: Add padding to negative years and other changes
</li>
<li>PR #2197: Add some additional methods from JDBC 4.2 and return 4.2 as supported version
</li>
<li>PR #2193: Require Java 8 and remove Java 7 support
</li>
<li>Issue #2191: NPE with H2 v1.4.200 repeatable read select queries
</li>
<li>Issue #1390: Add standard-compliant ARRAY data type syntax
</li>
<li>PR #2186: Refactor Parser.parseColumnWithType() and fix some minor issues with CAST
</li>
<li>Issue #2181: SET EXCLUSIVE quirks
</li>
<li>PR #2173: Move snapshots from Transaction to TransactionMap
</li>
<li>Issue #2175: Regression: NPE in ResultSet#getTime(int)
</li>
<li>Issue #2171: Wrong PostgreSQL compatibility syntax for the creation of indexes
</li>
<li>PR #2169: Clean up some find methods of indexes and fix minor issues with them
</li>
</ul>

<!-- [close] { --></div></td></tr></table><!-- } --><!-- analytics --></body></html>
